package org.yak.core.utils;

import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.commons.beanutils.BeanUtils;
import org.yak.core.web.ResultSet;


/**
 * map工具类
 *
 * @平台：统一开发平台
 * @文件名称：MapUtils.java
 * @文件描述：
 * @author xuqiang
 * @日期：2018年6月22日上午10:48:15
 *
 */
public class MapUtils {
	/**
	 * map的key大写
	 * @param obj 对象
	 * @return 若给定对象为null则返回size=0的map对象
	 */
	public static Map<String,Object> toUpperMap(Map<String,Object> obj){
		Map<String, Object> resultMap  = new HashMap<String, Object>();
		if (obj == null) {
			return resultMap ;
		}
        Set<String> keySet = obj.keySet();
        for (String key : keySet){
            String newKey = key.toUpperCase();
            resultMap.put(newKey, obj.get(key));
        }
        return resultMap;
	}
	
	/**
	 * map key转小写
	 * @param obj
	 * @return
	 */
	public static Map<String,Object> toLowerMap(Map<String,Object> obj){
		Map<String, Object> resultMap  = new HashMap<String, Object>();
		if (obj == null) {
			return resultMap ;
		}
        Set<String> keySet = obj.keySet();
        for (String key : keySet){
            String newKey = key.toLowerCase();
            resultMap.put(newKey, obj.get(key));
        }
        return resultMap;
	}
	
	/**
	 * List结果集map对象转换成ResultSet对象
	 * @param maplist
	 * @return
	 */
	public static List<ResultSet> parseMapResultSetList(List<Map<String,Object>> maplist){
		List<ResultSet> resultlist= new ArrayList<ResultSet>();
		for(Map<String,Object> map : maplist){
			ResultSet m = new ResultSet();
			m.putAll(map);
			resultlist.add(m);
		}
		return resultlist;
	}
}
